const fs = require("fs");
const handlebars = require("handlebars");
const chalk = require("chalk");


module.exports = async () => {
    // 获取页面列表
    const list = fs.readdirSync('./src/page')
        .filter(p => p !== 'home' && p !== 'login')
        .map(p => ({
            name: p.replace(".js", "").toLowerCase(),
            file: p
        }));
    
        console.log("list: ", list);
    
    // 路由
    compile({list}, "./src/router/index.js", './template/router.js.hbs');
    
    // 菜单
    // compile({list}, "./src/component/menu.js", './template/menu.js.hbs');
    
    /**
     * 编译模版
     * @param {*} meta 数据定义
     * @param {*} filePath 目标文件
     * @param {*} templatePath 模版文件
     */
    function compile(meta, filePath, templatePath){
        if(fs.existsSync(templatePath)){
            const content = fs.readFileSync(templatePath).toString();
            const result = handlebars.compile(content)(meta);
            fs.writeFileSync(filePath, result);
            console.log(`${filePath} 创建成功。`)
        }
    }
}